
#pragma once

namespace ttg_internal
{
	namespace utils
	{
		///<summary>
		/// Defines position of the utility on the screen.
		///</summary>
		public enum class UtilityPosition
		{
			TopLeft,
			TopRight,
			BottomLeft,
			BottomRight,
			Center
		};
		///<summary>
		/// Contains properties for one utility.
		///</summary>
		public ref struct UtilityProps
		{
			private:
				System::String ^_name;
				bool _isHidden;
				UtilityPosition _position;
			public:
				///<summary>
				/// Creates default properties.
				///</summary>
				UtilityProps(System::String ^name)
				{
					_name = name;
					_isHidden = false;
					_position = UtilityPosition::Center;
				}
				///<summary>
				/// Returns name of the utility.
				///<summary>
				property System::String ^Name
				{
					System::String ^get()
					{ return _name; }
				}
				///<summary>
				/// Defines, should property be hidden or not.
				///</summary>
				property bool IsHidden
				{
					bool get()
					{ return _isHidden; }
					void set(bool value)
					{ _isHidden = value; }
				}
				///<summary>
				/// Defines, where utility should be placed.
				///<summary>
				property UtilityPosition Position
				{
					UtilityPosition get()
					{ return _position; }
					void set(UtilityPosition value)
					{ _position = value; }
				}
		};
	}
}
